package com.itheima.jobs;

import cn.hutool.core.collection.CollectionUtil;
import com.itheima.constant.RedisConstant;
import com.itheima.utils.QiniuUtil;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.Set;


//要让这个bean进入容器两种方式
//    1、@Component <context:component-scan base-package="com.itheima.jobs"
//    2、<bean class="com.itheima.jobs.ClearImage" id="clearImage"></bean>
public class ClearImage {

    @Autowired
    JedisPool jedisPool;

    public void run(){
        System.out.println("---------------------");
        //比较的方法redis已经有了
        Jedis jedis = null;
        try {
            jedis = jedisPool.getResource();
            //会拿第一个集合里面的元素挨个去后面集合（可以多个）找，没找到就返回给你
            Set<String> files = jedis.sdiff(RedisConstant.SETMEAL_PIC_RESOURCES, RedisConstant.SETMEAL_PIC_DB_RESOURCES);
            if(CollectionUtil.isNotEmpty(files)){
                /** for (String file : files) {
                 //删除七牛图片
                 QiniuUtil.delete(file);
                 //把redis也删除避免下一次做重复的操作
                 jedis.srem(RedisConstant.SETMEAL_PIC_RESOURCES,file);
                 }*/

                //可以优化：可以批量删除七牛图片 ，也可以批量删除redis里面的数据(jedis.srem 后面可以传入一个数组)，留给你们
                String[] deleteKeys = files.toArray(new String[files.size()]);
                //deleteKeys 如果数据超过了1000 可以把数组按照1000的大小进行拆分
                jedis.srem(RedisConstant.SETMEAL_PIC_RESOURCES,deleteKeys);
                QiniuUtil.batchDelete(deleteKeys);
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(jedis !=null){
                jedis.close();
            }

        }




    }

}
